package demo;

public class rotatetest {
    //需求：定于两个字符串
    //     对第一个字符串进行旋转若干次后
    //     判断是否可以于第二个字符串相等
    public static void main(String[] args) {
        //1.定义两个字符串
        String a="abcde";
        String b="cdeab";
        //2.旋转并比较


        boolean flag=check(a,b);
        System.out.println(flag);
    }
    //方法：旋转字符
    public static String rotate(String str){
        //两种方法：
        //1.截取拼接
//        char start=str.charAt(0);
//        String end=str.substring(1);
//        return end+start;
        //2.字符串变成数组再修改
        //这个方法返回一个字符数组
        char[] chars = str.toCharArray();
        //取出首字符
        char c=chars[0];
        //后面的字符整体往前移
        for (int i = 1; i < chars.length; i++) {
                chars[i-1]=chars[i];
        }
        //把首字符放末尾
        chars[chars.length-1]=c;
        //把字符数组变成字符串
        String result=new String(chars);

        return result;
    }
    //方法：旋转字符并比较
    public static boolean check(String str,String str1){
        //旋转次数上限为字符串的长度
        for (int i = 0; i < str.length(); i++) {
            //每旋转一次更新一次
            str=rotate(str);
            if(str.equals(str1)){
                return true;
            }
        }
        return false;
    }
}
